The present invention is related to methods for installing computer peripheral drivers. In particular, the present invention is related to methods for automated location and installation of peripheral drivers.
Computer peripherals are widely present in the modern computer-saturated world. Printers, scanners, modems, gaming peripherals, external disk drives and the like are used by consumers and businesses in steadily increasing numbers. In order to properly function, these peripheral devices require software drivers. The driver generally provides a software interface that allows software applications running on the computer to functionally interface with the peripheral.
Upon initial purchase a peripheral typically comes with a driver on a disk or other medium for installation by the user. When initially setting up the peripheral, the user is required to install the software driver on his computer""s operating system. Different drivers are provided for different computer and operating system configurations. By way of example, different operating system versions may require different drivers.
Additionally, for many peripherals different drivers are required to support different languages and peripheral feature sets. Printers, for instance, may have one driver that supports English, German, and Spanish. For support of Chinese or Japanese, however, a different driver may be required. Likewise, if the user wishes to utilize a special printer math character set, a particular driver may be required. Because the peripheral manufacturer generally does not know in what environment the peripheral will be installed, the manufacturer is often disadvantageously forced to provide multiple drivers with each peripheral thereby adding cost to their products.
Further, users are required to correctly make several determinations to choose the proper driver amongst the several available to install. For example, users must accurately determine factors such as what version operating system they are using, what model peripheral they are installing, what feature sets are supported by the peripheral, and the like. This disadvantageously adds time, effort, and confusion to the installation process. Often, users may make an erroneous determination resulting in the wrong driver being loaded. While this is obviously disadvantageous for the user, it is likewise disadvantageous for the manufacturer as it often leads to increased demands on customer support resources and low customer satisfaction.
Users are also required to maintain all of the supplied drivers in case their computer or network configuration should change in the future. For example, if a computer should crash, the driver may need to be re-installed. As another example, if the user should move the peripheral to a different computer having a different operating system or choose to utilize a special peripheral feature set at some time in the future, they may require a different driver.
Problems associated with finding and installing correct peripheral drivers are even more acute for manufacturers of peripheral servers and other devices designed to work with a plurality of existing peripherals. For these manufacturers, there may be a multiplicity of possible peripherals and associated drivers that will be required. By way of example, devices such as print servers are manufactured and sold to manage many different models of networked printers. It is not practical, and may even be impossible, for the manufacturer of the print server to provide drivers for each of the multiplicity of printers that may be managed by the server. The print server user may therefore be required to find a required driver(s) on her own.
Attempts to address these and other problems in the art have been made. In particular, manufacturers have provided for on-line access to drivers. Users can connect to a driver xe2x80x9clibraryxe2x80x9d over a data network such as the Internet to download a desired driver. Unfortunately, this practice still requires users to make a number of determinations in selecting the proper driver. Often a multiplicity of drivers is available from the on-line library, making selection of the proper driver more difficult. The user must also download the driver that is typically in a compressed format to a desired local location, find the downloaded driver, run a decompression algorithm, and then install it. An Internet based driver delivery system thus requires a degree of computer sophistication on the user""s part to locate the correct web site and to properly execute the downloading and installation steps.
An additional proposed solution to these unresolved problems involves providing xe2x80x9cgenericxe2x80x9d peripheral drivers with operating systems. These generic drivers in theory can be used with a variety of different peripherals from different manufacturers. While these drivers are relatively easy to find and install as they come pre-packaged with the operating system, they have proven to be problematic in practice. To make them xe2x80x9cgenericallyxe2x80x9d usable with different peripheral devices, they typically provide only core functionality and may not support some features on a particular peripheral. For this and other reasons use of these generic drivers is often disadvantageous.
The several proposed solutions to these problems have also introduced a new set of problems for driver users. In particular, users are often confronted with multiple choices for obtaining drivers. By way of example, a peripheral user may have drivers available from a CD, a pre-installed operating system location, and an on-line driver library. Each of these locations may have a different driver that will work with the peripheral. Although each of these different drivers is operable, only one will be the most preferred. Some operable drivers, for example, may be old, obsolete versions that have unresolved bugs associated with them or that have only limited functionality.
The plurality of available drivers leads to confusion on the part of the user, who must determine which driver to select. Additionally, the xe2x80x9cbestxe2x80x9d driver may differ for different users depending on their computing environment and criteria for selection. By way of example, some users may only use limited features on the peripheral and thus desire any operable driver. These users may simply desire the driver that is easiest to obtain and install. Other users may require advanced feature functionality and desire the most recently released and robust driver version regardless of the difficulty of obtaining and installation.
These and other problems thus remain heretofore unresolved in the art.
The present invention generally comprises an improved method for locating and installing a new peripheral driver on an operating system. The method generally comprises the steps of creating a profile of the driver to be installed and searching locations from a list of potential driver sources for a driver that matches the driver profile. Once a matching driver is found, it is downloaded and installed on the operating system. The list of potential locations may be prioritized based on priority standards that may comprise ease of driver installation, most recently released driver version, and the like. The driver profile comprises information that may be reviewed to determine what particular driver is required, and preferably comprises a peripheral model number, an operating system version, and an operating system language.
Preferably, a resources profile is also created that generally describes the resources available to the operating system for obtaining a driver. This resources profile may be evaluated to determine whether any sources from the prioritized list of sources may be eliminated, thereby reducing time and effort associated with the method. The step of creating a resources profile comprises at least determining whether there are any existing drivers currently installed on the operating system, and more preferably further comprises determining a network environment for the operating system.
It will be appreciated that the method of the invention is well suited for practice by a computer in the form of a computer program product. Accordingly, an additional embodiment of the present invention comprises a computer program product comprising computer executable instructions embedded in a computer readable medium that when executed cause a computer to perform the steps of the method of the invention. The computer readable medium preferably comprises data storage media such as magnetic or optical media.
The method and computer program product of the invention thereby solve in a novel and elegant manner many of the heretofore-unresolved problems in the art. Practice of the invention generally allows for automated determination of a user""s operating system environment and for subsequent automated procurement of a driver that is best suited to that environment. Practice of the invention also guides users through the confusion associated with multiple potential drivers available from multiple different sources. Additionally, users are not required to accurately make determinations regarding their operating system and peripheral configuration to decide which driver is appropriate. Practice of the invention also greatly reduces the degree of computer and/or networking sophistication that were required of users by prior art methods.
Further, peripheral manufacturers are provided cost savings through practice of the invention as reduced user confusion results in lower demands on customer support resources. Also, shipment of multiple drivers with peripherals may not be required. Instead, drivers may be more efficiently placed in a network accessible central library without concern over a user""s ability to locate the library and to choose the correct driver. Updating of drivers is likewise made much easier with this network library configuration.
The above brief description sets forth rather broadly the more important features and advantages of the present disclosure so that the detailed description that follows may be better understood, and so that the present contributions to the art may be better appreciated. There are, of course, additional features of the disclosure that will be described hereinafter that form the subject matter of the claims appended hereto. In this respect, before explaining the embodiment of the disclosure in detail, it is to be understood that the disclosure is not limited to the details set forth in the following description or illustrated in the drawings. The present invention may provide additional embodiments and be practiced in additional ways, as will be appreciated by those skilled in the art. Also, it is to be understood that the phraseology and terminology employed herein are for description and not limitation.